Scanning a DOORS database for corrupted modules

Hello All,
This has to do with scanning a DOORS database after a server crash/accidental server reboot for corrupted modules/user accounts. One way to do make sure data has not been corrupted after a server crash, is to check each DOORS formal module individually but the time factor associated with this task is way too large. Does DOORS have an in-built function that checks for corrupted modules in a DOORS database? Any input on this would be highly appreciated. Thank you.

Regards,

Pranav
PranavC - Fri Mar 05 15:13:00 EST 2010

Re: Scanning a DOORS database for corrupted modules
SystemAdmin - Sat Mar 06 13:12:08 EST 2010

Latest DOORS versions (> 7.0) have a Database Integrity Checker which you need to run as Administrator. See DOORS Help / Manuals for more information on this. It checks only projects / folders and modules, not users.

Re: Scanning a DOORS database for corrupted modules
llandale - Sun Mar 07 15:10:23 EST 2010

In addition to the Integrity checker, you also want to archive every Project, as this may find some corrupted files in the database hierarchy. That is, some archiving will fail when such files exist.

I'd be tempted to access everything in each and every module; something like this:
{code}
Buffer buf = create
Item itm
string Type
Module mod
Object obj
Link lnk
AttrDef ad
AttrType at
string NameView
for itm in prj do
{
Type = type(itm)
if (Type = "Folder" or Type == "Project")
{ buf = fullName(itm)
continue
}
// Modules:
mod = read(fullName(itm), false, true)

for obj in entire mod do
{ buf = identifier(obj)
for lnk in obj ->"*" do
}

for ad in mod do { buf = ad.name }

for at in mod do { buf = at.name }

for NameView in views(mod) do {}

close(mod)
Actually, you want to surround everything with 'noError' and 'lastError' checks:
for ad in mod do {noError; buf = ad.name; ErrMess = lastError; if (!null ErrMess) print identifier(obj) "\t" ErrMess

  • Louie

Re: Scanning a DOORS database for corrupted modules
PranavC - Mon Apr 05 18:54:20 EDT 2010

My sincere apologies for not having acknowledged your responses earlier. For some odd reason, I did not receive a notification when you responded. Thank you so much. I will try out both suggestions.